#pragma once

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 0 额外参数; ptr 可以为 1~N
#define MYHLP_RCUR0_1(macro, ptr) macro(ptr)

#define MYHLP_RCUR0_2(macro, ptr1, ptr2) \
    MYHLP_RCUR0_1(macro, ptr1)           \
    MYHLP_RCUR0_1(macro, ptr2)

#define MYHLP_RCUR0_3(macro, ptr1, ptr2, ptr3) \
    MYHLP_RCUR0_1(macro, ptr1)                 \
    MYHLP_RCUR0_1(macro, ptr2)                 \
    MYHLP_RCUR0_1(macro, ptr3)

#define MYHLP_RCUR0_4(macro, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR0_2(macro, ptr1, ptr2)                 \
    MYHLP_RCUR0_2(macro, ptr3, ptr4)

#define MYHLP_RCUR0_5(macro, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR0_1(macro, ptr1)                             \
    MYHLP_RCUR0_2(macro, ptr2, ptr3)                       \
    MYHLP_RCUR0_2(macro, ptr4, ptr5)

#define MYHLP_RCUR0_6(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR0_3(macro, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR0_3(macro, ptr4, ptr5, ptr6)

#define MYHLP_RCUR0_7(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR0_1(macro, ptr1)                                         \
    MYHLP_RCUR0_3(macro, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR0_3(macro, ptr5, ptr6, ptr7)

#define MYHLP_RCUR0_8(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR0_4(macro, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR0_4(macro, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR0_9(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR0_1(macro, ptr1)                                                     \
    MYHLP_RCUR0_4(macro, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR0_4(macro, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR0_10(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR0_5(macro, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR0_5(macro, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR0_11(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR0_1(macro, ptr1)                                                                    \
    MYHLP_RCUR0_5(macro, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR0_5(macro, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR0_12(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR0_6(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                             \
    MYHLP_RCUR0_6(macro, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR0_13(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13) \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                  \
    MYHLP_RCUR0_6(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                    \
    MYHLP_RCUR0_6(macro, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR0_14(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14) \
    MYHLP_RCUR0_7(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                     \
    MYHLP_RCUR0_7(macro, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR0_15(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15) \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                \
    MYHLP_RCUR0_7(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                            \
    MYHLP_RCUR0_7(macro, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR0_16(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16) \
    MYHLP_RCUR0_8(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                             \
    MYHLP_RCUR0_8(macro, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR0_17(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17) \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                              \
    MYHLP_RCUR0_8(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                                                    \
    MYHLP_RCUR0_8(macro, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR0_18(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18) \
    MYHLP_RCUR0_9(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                                                     \
    MYHLP_RCUR0_9(macro, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR0_19(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19)                                                                                                                      \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                                     \
    MYHLP_RCUR0_9(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                                                    \
    MYHLP_RCUR0_9(macro, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR0_20(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20)                                                                                                               \
    MYHLP_RCUR0_10(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                                             \
    MYHLP_RCUR0_10(macro, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR0_21(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21)                                                                                                        \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                                     \
    MYHLP_RCUR0_10(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                                            \
    MYHLP_RCUR0_10(macro, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR0_22(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22)                                                                                                 \
    MYHLP_RCUR0_11(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                                      \
    MYHLP_RCUR0_11(macro, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR0_23(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23)                                                                                          \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                                     \
    MYHLP_RCUR0_11(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                                                     \
    MYHLP_RCUR0_11(macro, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR0_24(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                                                                   \
    MYHLP_RCUR0_12(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                                               \
    MYHLP_RCUR0_12(macro, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)

#define MYHLP_RCUR0_25(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                                                                            \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                                     \
    MYHLP_RCUR0_12(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                                              \
    MYHLP_RCUR0_12(macro, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)

#define MYHLP_RCUR0_26(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                                                                     \
    MYHLP_RCUR0_13(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                                        \
    MYHLP_RCUR0_13(macro, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)

#define MYHLP_RCUR0_27(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)                                                              \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                                     \
    MYHLP_RCUR0_13(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)                                       \
    MYHLP_RCUR0_13(macro, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)

#define MYHLP_RCUR0_28(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)                                                       \
    MYHLP_RCUR0_14(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)                                 \
    MYHLP_RCUR0_14(macro, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)

#define MYHLP_RCUR0_29(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)                                                \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                                     \
    MYHLP_RCUR0_14(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)                                \
    MYHLP_RCUR0_14(macro, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)

#define MYHLP_RCUR0_30(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)                                         \
    MYHLP_RCUR0_15(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)                          \
    MYHLP_RCUR0_15(macro, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)

#define MYHLP_RCUR0_31(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)                                  \
    MYHLP_RCUR0_1(macro, ptr1)                                                                                                                     \
    MYHLP_RCUR0_15(macro, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)                         \
    MYHLP_RCUR0_15(macro, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)

#define MYHLP_RCUR0_32(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, \
                       ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)                           \
    MYHLP_RCUR0_16(macro, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)                   \
    MYHLP_RCUR0_16(macro, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR0_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR0_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR0_GET_FN(__VA_ARGS__, MYHLP_RCUR0_32, MYHLP_RCUR0_31, MYHLP_RCUR0_30, MYHLP_RCUR0_29, MYHLP_RCUR0_28, MYHLP_RCUR0_27, MYHLP_RCUR0_26, \
                       MYHLP_RCUR0_25, MYHLP_RCUR0_24, MYHLP_RCUR0_23, MYHLP_RCUR0_22, MYHLP_RCUR0_21, MYHLP_RCUR0_20, MYHLP_RCUR0_19,              \
                       MYHLP_RCUR0_18, MYHLP_RCUR0_17, MYHLP_RCUR0_16, MYHLP_RCUR0_15, MYHLP_RCUR0_14, MYHLP_RCUR0_13, MYHLP_RCUR0_12,              \
                       MYHLP_RCUR0_11, MYHLP_RCUR0_10, MYHLP_RCUR0_9, MYHLP_RCUR0_8, MYHLP_RCUR0_7, MYHLP_RCUR0_6, MYHLP_RCUR0_5, MYHLP_RCUR0_4,    \
                       MYHLP_RCUR0_3, MYHLP_RCUR0_2, MYHLP_RCUR0_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 1个额外参数 type; ptr 可以为 1~N
#define MYHLP_RCUR1_1(macro, type, ptr) macro(type, ptr)

#define MYHLP_RCUR1_2(macro, type, ptr1, ptr2) \
    MYHLP_RCUR1_1(macro, type, ptr1)           \
    MYHLP_RCUR1_1(macro, type, ptr2)

#define MYHLP_RCUR1_3(macro, type, ptr1, ptr2, ptr3) \
    MYHLP_RCUR1_1(macro, type, ptr1)                 \
    MYHLP_RCUR1_1(macro, type, ptr2)                 \
    MYHLP_RCUR1_1(macro, type, ptr3)

#define MYHLP_RCUR1_4(macro, type, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR1_2(macro, type, ptr1, ptr2)                 \
    MYHLP_RCUR1_2(macro, type, ptr3, ptr4)

#define MYHLP_RCUR1_5(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR1_1(macro, type, ptr1)                             \
    MYHLP_RCUR1_2(macro, type, ptr2, ptr3)                       \
    MYHLP_RCUR1_2(macro, type, ptr4, ptr5)

#define MYHLP_RCUR1_6(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR1_3(macro, type, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR1_3(macro, type, ptr4, ptr5, ptr6)

#define MYHLP_RCUR1_7(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR1_1(macro, type, ptr1)                                         \
    MYHLP_RCUR1_3(macro, type, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR1_3(macro, type, ptr5, ptr6, ptr7)

#define MYHLP_RCUR1_8(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR1_4(macro, type, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR1_4(macro, type, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR1_9(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                     \
    MYHLP_RCUR1_4(macro, type, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR1_4(macro, type, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR1_10(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR1_5(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR1_5(macro, type, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR1_11(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                    \
    MYHLP_RCUR1_5(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR1_5(macro, type, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR1_12(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR1_6(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                             \
    MYHLP_RCUR1_6(macro, type, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR1_13(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13) \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                  \
    MYHLP_RCUR1_6(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                    \
    MYHLP_RCUR1_6(macro, type, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR1_14(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14) \
    MYHLP_RCUR1_7(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                     \
    MYHLP_RCUR1_7(macro, type, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR1_15(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15) \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                \
    MYHLP_RCUR1_7(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                            \
    MYHLP_RCUR1_7(macro, type, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR1_16(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16) \
    MYHLP_RCUR1_8(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                             \
    MYHLP_RCUR1_8(macro, type, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR1_17(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17) \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                              \
    MYHLP_RCUR1_8(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                                                    \
    MYHLP_RCUR1_8(macro, type, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR1_18(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18)                                                                                                                     \
    MYHLP_RCUR1_9(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                                              \
    MYHLP_RCUR1_9(macro, type, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR1_19(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19)                                                                                                              \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                              \
    MYHLP_RCUR1_9(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                                             \
    MYHLP_RCUR1_9(macro, type, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR1_20(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20)                                                                                                       \
    MYHLP_RCUR1_10(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                                      \
    MYHLP_RCUR1_10(macro, type, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR1_21(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21)                                                                                                \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                              \
    MYHLP_RCUR1_10(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                                     \
    MYHLP_RCUR1_10(macro, type, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR1_22(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22)                                                                                         \
    MYHLP_RCUR1_11(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                               \
    MYHLP_RCUR1_11(macro, type, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR1_23(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                                                                  \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                              \
    MYHLP_RCUR1_11(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                                              \
    MYHLP_RCUR1_11(macro, type, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR1_24(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                                                           \
    MYHLP_RCUR1_12(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                                        \
    MYHLP_RCUR1_12(macro, type, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)

#define MYHLP_RCUR1_25(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                                                                    \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                              \
    MYHLP_RCUR1_12(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                                       \
    MYHLP_RCUR1_12(macro, type, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)

#define MYHLP_RCUR1_26(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                                                             \
    MYHLP_RCUR1_13(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                                 \
    MYHLP_RCUR1_13(macro, type, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)

#define MYHLP_RCUR1_27(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)                                                      \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                              \
    MYHLP_RCUR1_13(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)                                \
    MYHLP_RCUR1_13(macro, type, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)

#define MYHLP_RCUR1_28(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)                                               \
    MYHLP_RCUR1_14(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)                          \
    MYHLP_RCUR1_14(macro, type, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)

#define MYHLP_RCUR1_29(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)                                        \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                              \
    MYHLP_RCUR1_14(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)                         \
    MYHLP_RCUR1_14(macro, type, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)

#define MYHLP_RCUR1_30(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)                                 \
    MYHLP_RCUR1_15(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)                   \
    MYHLP_RCUR1_15(macro, type, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)

#define MYHLP_RCUR1_31(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)                          \
    MYHLP_RCUR1_1(macro, type, ptr1)                                                                                                              \
    MYHLP_RCUR1_15(macro, type, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)                  \
    MYHLP_RCUR1_15(macro, type, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)

#define MYHLP_RCUR1_32(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, \
                       ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)                   \
    MYHLP_RCUR1_16(macro, type, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)            \
    MYHLP_RCUR1_16(macro, type, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR1_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR1_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR1_GET_FN(__VA_ARGS__, MYHLP_RCUR1_32, MYHLP_RCUR1_31, MYHLP_RCUR1_30, MYHLP_RCUR1_29, MYHLP_RCUR1_28, MYHLP_RCUR1_27, MYHLP_RCUR1_26, \
                       MYHLP_RCUR1_25, MYHLP_RCUR1_24, MYHLP_RCUR1_23, MYHLP_RCUR1_22, MYHLP_RCUR1_21, MYHLP_RCUR1_20, MYHLP_RCUR1_19,              \
                       MYHLP_RCUR1_18, MYHLP_RCUR1_17, MYHLP_RCUR1_16, MYHLP_RCUR1_15, MYHLP_RCUR1_14, MYHLP_RCUR1_13, MYHLP_RCUR1_12,              \
                       MYHLP_RCUR1_11, MYHLP_RCUR1_10, MYHLP_RCUR1_9, MYHLP_RCUR1_8, MYHLP_RCUR1_7, MYHLP_RCUR1_6, MYHLP_RCUR1_5, MYHLP_RCUR1_4,    \
                       MYHLP_RCUR1_3, MYHLP_RCUR1_2, MYHLP_RCUR1_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 2个额外参数 type, len; ptr 可以为 1~N
#define MYHLP_RCUR2_1(macro, type, len, ptr) macro(type, len, ptr)

#define MYHLP_RCUR2_2(macro, type, len, ptr1, ptr2) \
    MYHLP_RCUR2_1(macro, type, len, ptr1)           \
    MYHLP_RCUR2_1(macro, type, len, ptr2)

#define MYHLP_RCUR2_3(macro, type, len, ptr1, ptr2, ptr3) \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                 \
    MYHLP_RCUR2_1(macro, type, len, ptr2)                 \
    MYHLP_RCUR2_1(macro, type, len, ptr3)

#define MYHLP_RCUR2_4(macro, type, len, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR2_2(macro, type, len, ptr1, ptr2)                 \
    MYHLP_RCUR2_2(macro, type, len, ptr3, ptr4)

#define MYHLP_RCUR2_5(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                             \
    MYHLP_RCUR2_2(macro, type, len, ptr2, ptr3)                       \
    MYHLP_RCUR2_2(macro, type, len, ptr4, ptr5)

#define MYHLP_RCUR2_6(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR2_3(macro, type, len, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR2_3(macro, type, len, ptr4, ptr5, ptr6)

#define MYHLP_RCUR2_7(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                         \
    MYHLP_RCUR2_3(macro, type, len, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR2_3(macro, type, len, ptr5, ptr6, ptr7)

#define MYHLP_RCUR2_8(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR2_4(macro, type, len, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR2_4(macro, type, len, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR2_9(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                     \
    MYHLP_RCUR2_4(macro, type, len, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR2_4(macro, type, len, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR2_10(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR2_5(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR2_5(macro, type, len, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR2_11(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                    \
    MYHLP_RCUR2_5(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR2_5(macro, type, len, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR2_12(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR2_6(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                             \
    MYHLP_RCUR2_6(macro, type, len, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR2_13(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13) \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                  \
    MYHLP_RCUR2_6(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                    \
    MYHLP_RCUR2_6(macro, type, len, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR2_14(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14) \
    MYHLP_RCUR2_7(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                     \
    MYHLP_RCUR2_7(macro, type, len, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR2_15(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15) \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                \
    MYHLP_RCUR2_7(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                            \
    MYHLP_RCUR2_7(macro, type, len, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR2_16(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16) \
    MYHLP_RCUR2_8(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                             \
    MYHLP_RCUR2_8(macro, type, len, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR2_17(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17)                                                                                                                   \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                       \
    MYHLP_RCUR2_8(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                                             \
    MYHLP_RCUR2_8(macro, type, len, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR2_18(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18)                                                                                                            \
    MYHLP_RCUR2_9(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                                       \
    MYHLP_RCUR2_9(macro, type, len, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR2_19(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19)                                                                                                     \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                       \
    MYHLP_RCUR2_9(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                                      \
    MYHLP_RCUR2_9(macro, type, len, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR2_20(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20)                                                                                              \
    MYHLP_RCUR2_10(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                               \
    MYHLP_RCUR2_10(macro, type, len, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR2_21(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21)                                                                                       \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                       \
    MYHLP_RCUR2_10(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                              \
    MYHLP_RCUR2_10(macro, type, len, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR2_22(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)                                                                                \
    MYHLP_RCUR2_11(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                        \
    MYHLP_RCUR2_11(macro, type, len, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR2_23(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                                                         \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                       \
    MYHLP_RCUR2_11(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                                       \
    MYHLP_RCUR2_11(macro, type, len, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR2_24(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                                                  \
    MYHLP_RCUR2_12(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                                 \
    MYHLP_RCUR2_12(macro, type, len, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)

#define MYHLP_RCUR2_25(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                                                           \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                       \
    MYHLP_RCUR2_12(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                                \
    MYHLP_RCUR2_12(macro, type, len, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)

#define MYHLP_RCUR2_26(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                                                    \
    MYHLP_RCUR2_13(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                          \
    MYHLP_RCUR2_13(macro, type, len, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)

#define MYHLP_RCUR2_27(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)                                             \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                       \
    MYHLP_RCUR2_13(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)                         \
    MYHLP_RCUR2_13(macro, type, len, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)

#define MYHLP_RCUR2_28(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)                                      \
    MYHLP_RCUR2_14(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)                   \
    MYHLP_RCUR2_14(macro, type, len, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)

#define MYHLP_RCUR2_29(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)                               \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                       \
    MYHLP_RCUR2_14(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)                  \
    MYHLP_RCUR2_14(macro, type, len, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)

#define MYHLP_RCUR2_30(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)                        \
    MYHLP_RCUR2_15(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)            \
    MYHLP_RCUR2_15(macro, type, len, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)

#define MYHLP_RCUR2_31(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)                 \
    MYHLP_RCUR2_1(macro, type, len, ptr1)                                                                                                       \
    MYHLP_RCUR2_15(macro, type, len, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)           \
    MYHLP_RCUR2_15(macro, type, len, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)

#define MYHLP_RCUR2_32(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, \
                       ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)          \
    MYHLP_RCUR2_16(macro, type, len, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)     \
    MYHLP_RCUR2_16(macro, type, len, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR2_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR2_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR2_GET_FN(__VA_ARGS__, MYHLP_RCUR2_32, MYHLP_RCUR2_31, MYHLP_RCUR2_30, MYHLP_RCUR2_29, MYHLP_RCUR2_28, MYHLP_RCUR2_27, MYHLP_RCUR2_26, \
                       MYHLP_RCUR2_25, MYHLP_RCUR2_24, MYHLP_RCUR2_23, MYHLP_RCUR2_22, MYHLP_RCUR2_21, MYHLP_RCUR2_20, MYHLP_RCUR2_19,              \
                       MYHLP_RCUR2_18, MYHLP_RCUR2_17, MYHLP_RCUR2_16, MYHLP_RCUR2_15, MYHLP_RCUR2_14, MYHLP_RCUR2_13, MYHLP_RCUR2_12,              \
                       MYHLP_RCUR2_11, MYHLP_RCUR2_10, MYHLP_RCUR2_9, MYHLP_RCUR2_8, MYHLP_RCUR2_7, MYHLP_RCUR2_6, MYHLP_RCUR2_5, MYHLP_RCUR2_4,    \
                       MYHLP_RCUR2_3, MYHLP_RCUR2_2, MYHLP_RCUR2_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 3个额外参数 type, len; ptr 可以为 1~N
#define MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr) macro(arg1, arg2, arg3, ptr)

#define MYHLP_RCUR3_2(macro, arg1, arg2, arg3, ptr1, ptr2) \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)           \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr2)

#define MYHLP_RCUR3_3(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3) \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                 \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr2)                 \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr3)

#define MYHLP_RCUR3_4(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR3_2(macro, arg1, arg2, arg3, ptr1, ptr2)                 \
    MYHLP_RCUR3_2(macro, arg1, arg2, arg3, ptr3, ptr4)

#define MYHLP_RCUR3_5(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                             \
    MYHLP_RCUR3_2(macro, arg1, arg2, arg3, ptr2, ptr3)                       \
    MYHLP_RCUR3_2(macro, arg1, arg2, arg3, ptr4, ptr5)

#define MYHLP_RCUR3_6(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR3_3(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR3_3(macro, arg1, arg2, arg3, ptr4, ptr5, ptr6)

#define MYHLP_RCUR3_7(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                         \
    MYHLP_RCUR3_3(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR3_3(macro, arg1, arg2, arg3, ptr5, ptr6, ptr7)

#define MYHLP_RCUR3_8(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR3_4(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR3_4(macro, arg1, arg2, arg3, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR3_9(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                     \
    MYHLP_RCUR3_4(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR3_4(macro, arg1, arg2, arg3, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR3_10(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR3_5(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR3_5(macro, arg1, arg2, arg3, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR3_11(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                    \
    MYHLP_RCUR3_5(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR3_5(macro, arg1, arg2, arg3, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR3_12(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR3_6(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                             \
    MYHLP_RCUR3_6(macro, arg1, arg2, arg3, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR3_13(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13) \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                  \
    MYHLP_RCUR3_6(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                    \
    MYHLP_RCUR3_6(macro, arg1, arg2, arg3, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR3_14(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14) \
    MYHLP_RCUR3_7(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                     \
    MYHLP_RCUR3_7(macro, arg1, arg2, arg3, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR3_15(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15) \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_7(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                            \
    MYHLP_RCUR3_7(macro, arg1, arg2, arg3, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR3_16(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16)                                                                                                                   \
    MYHLP_RCUR3_8(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                      \
    MYHLP_RCUR3_8(macro, arg1, arg2, arg3, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR3_17(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17)                                                                                                            \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_8(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                                      \
    MYHLP_RCUR3_8(macro, arg1, arg2, arg3, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR3_18(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18)                                                                                                     \
    MYHLP_RCUR3_9(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                                \
    MYHLP_RCUR3_9(macro, arg1, arg2, arg3, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR3_19(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19)                                                                                              \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_9(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                               \
    MYHLP_RCUR3_9(macro, arg1, arg2, arg3, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR3_20(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20)                                                                                       \
    MYHLP_RCUR3_10(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                        \
    MYHLP_RCUR3_10(macro, arg1, arg2, arg3, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR3_21(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)                                                                                \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_10(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                       \
    MYHLP_RCUR3_10(macro, arg1, arg2, arg3, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR3_22(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)                                                                         \
    MYHLP_RCUR3_11(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                 \
    MYHLP_RCUR3_11(macro, arg1, arg2, arg3, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR3_23(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                                                  \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_11(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                                \
    MYHLP_RCUR3_11(macro, arg1, arg2, arg3, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR3_24(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                                           \
    MYHLP_RCUR3_12(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                          \
    MYHLP_RCUR3_12(macro, arg1, arg2, arg3, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)

#define MYHLP_RCUR3_25(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                                                    \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_12(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                         \
    MYHLP_RCUR3_12(macro, arg1, arg2, arg3, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)

#define MYHLP_RCUR3_26(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                                             \
    MYHLP_RCUR3_13(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                   \
    MYHLP_RCUR3_13(macro, arg1, arg2, arg3, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)

#define MYHLP_RCUR3_27(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)                                      \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_13(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)                  \
    MYHLP_RCUR3_13(macro, arg1, arg2, arg3, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)

#define MYHLP_RCUR3_28(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)                               \
    MYHLP_RCUR3_14(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)            \
    MYHLP_RCUR3_14(macro, arg1, arg2, arg3, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)

#define MYHLP_RCUR3_29(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)                        \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_14(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)           \
    MYHLP_RCUR3_14(macro, arg1, arg2, arg3, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)

#define MYHLP_RCUR3_30(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)                 \
    MYHLP_RCUR3_15(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)     \
    MYHLP_RCUR3_15(macro, arg1, arg2, arg3, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)

#define MYHLP_RCUR3_31(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)          \
    MYHLP_RCUR3_1(macro, arg1, arg2, arg3, ptr1)                                                                                                \
    MYHLP_RCUR3_15(macro, arg1, arg2, arg3, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)    \
    MYHLP_RCUR3_15(macro, arg1, arg2, arg3, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)

#define MYHLP_RCUR3_32(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15,      \
                       ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)        \
    MYHLP_RCUR3_16(macro, arg1, arg2, arg3, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)   \
    MYHLP_RCUR3_16(macro, arg1, arg2, arg3, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, \
                   ptr32)

// 可变参数宏
#define MYHLP_RCUR3_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR3_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR3_GET_FN(__VA_ARGS__, MYHLP_RCUR3_32, MYHLP_RCUR3_31, MYHLP_RCUR3_30, MYHLP_RCUR3_29, MYHLP_RCUR3_28, MYHLP_RCUR3_27, MYHLP_RCUR3_26, \
                       MYHLP_RCUR3_25, MYHLP_RCUR3_24, MYHLP_RCUR3_23, MYHLP_RCUR3_22, MYHLP_RCUR3_21, MYHLP_RCUR3_20, MYHLP_RCUR3_19,              \
                       MYHLP_RCUR3_18, MYHLP_RCUR3_17, MYHLP_RCUR3_16, MYHLP_RCUR3_15, MYHLP_RCUR3_14, MYHLP_RCUR3_13, MYHLP_RCUR3_12,              \
                       MYHLP_RCUR3_11, MYHLP_RCUR3_10, MYHLP_RCUR3_9, MYHLP_RCUR3_8, MYHLP_RCUR3_7, MYHLP_RCUR3_6, MYHLP_RCUR3_5, MYHLP_RCUR3_4,    \
                       MYHLP_RCUR3_3, MYHLP_RCUR3_2, MYHLP_RCUR3_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 4个额外参数 type, len; ptr 可以为 1~N
#define MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr) macro(arg1, arg2, arg3, arg4, ptr)

#define MYHLP_RCUR4_2(macro, arg1, arg2, arg3, arg4, ptr1, ptr2) \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)           \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr2)

#define MYHLP_RCUR4_3(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3) \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                 \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr2)                 \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr3)

#define MYHLP_RCUR4_4(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR4_2(macro, arg1, arg2, arg3, arg4, ptr1, ptr2)                 \
    MYHLP_RCUR4_2(macro, arg1, arg2, arg3, arg4, ptr3, ptr4)

#define MYHLP_RCUR4_5(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                             \
    MYHLP_RCUR4_2(macro, arg1, arg2, arg3, arg4, ptr2, ptr3)                       \
    MYHLP_RCUR4_2(macro, arg1, arg2, arg3, arg4, ptr4, ptr5)

#define MYHLP_RCUR4_6(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR4_3(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR4_3(macro, arg1, arg2, arg3, arg4, ptr4, ptr5, ptr6)

#define MYHLP_RCUR4_7(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                         \
    MYHLP_RCUR4_3(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR4_3(macro, arg1, arg2, arg3, arg4, ptr5, ptr6, ptr7)

#define MYHLP_RCUR4_8(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR4_4(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR4_4(macro, arg1, arg2, arg3, arg4, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR4_9(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                     \
    MYHLP_RCUR4_4(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR4_4(macro, arg1, arg2, arg3, arg4, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR4_10(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR4_5(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR4_5(macro, arg1, arg2, arg3, arg4, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR4_11(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                    \
    MYHLP_RCUR4_5(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR4_5(macro, arg1, arg2, arg3, arg4, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR4_12(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR4_6(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                             \
    MYHLP_RCUR4_6(macro, arg1, arg2, arg3, arg4, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR4_13(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13) \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                  \
    MYHLP_RCUR4_6(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                    \
    MYHLP_RCUR4_6(macro, arg1, arg2, arg3, arg4, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR4_14(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14) \
    MYHLP_RCUR4_7(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                     \
    MYHLP_RCUR4_7(macro, arg1, arg2, arg3, arg4, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR4_15(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15)                                                                                                                  \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                         \
    MYHLP_RCUR4_7(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                     \
    MYHLP_RCUR4_7(macro, arg1, arg2, arg3, arg4, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR4_16(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16)                                                                                                           \
    MYHLP_RCUR4_8(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                               \
    MYHLP_RCUR4_8(macro, arg1, arg2, arg3, arg4, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR4_17(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17)                                                                                                    \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                         \
    MYHLP_RCUR4_8(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                               \
    MYHLP_RCUR4_8(macro, arg1, arg2, arg3, arg4, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR4_18(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18)                                                                                             \
    MYHLP_RCUR4_9(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                         \
    MYHLP_RCUR4_9(macro, arg1, arg2, arg3, arg4, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR4_19(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19)                                                                                      \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                         \
    MYHLP_RCUR4_9(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                        \
    MYHLP_RCUR4_9(macro, arg1, arg2, arg3, arg4, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR4_20(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)                                                                               \
    MYHLP_RCUR4_10(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                 \
    MYHLP_RCUR4_10(macro, arg1, arg2, arg3, arg4, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR4_21(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)                                                                        \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                         \
    MYHLP_RCUR4_10(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                \
    MYHLP_RCUR4_10(macro, arg1, arg2, arg3, arg4, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR4_22(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)                                                                 \
    MYHLP_RCUR4_11(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                          \
    MYHLP_RCUR4_11(macro, arg1, arg2, arg3, arg4, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR4_23(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                                          \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                         \
    MYHLP_RCUR4_11(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                         \
    MYHLP_RCUR4_11(macro, arg1, arg2, arg3, arg4, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR4_24(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                                   \
    MYHLP_RCUR4_12(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                   \
    MYHLP_RCUR4_12(macro, arg1, arg2, arg3, arg4, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)

#define MYHLP_RCUR4_25(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                                            \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                         \
    MYHLP_RCUR4_12(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                  \
    MYHLP_RCUR4_12(macro, arg1, arg2, arg3, arg4, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)

#define MYHLP_RCUR4_26(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                                     \
    MYHLP_RCUR4_13(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)            \
    MYHLP_RCUR4_13(macro, arg1, arg2, arg3, arg4, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)

#define MYHLP_RCUR4_27(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)                              \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                         \
    MYHLP_RCUR4_13(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)           \
    MYHLP_RCUR4_13(macro, arg1, arg2, arg3, arg4, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)

#define MYHLP_RCUR4_28(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)                       \
    MYHLP_RCUR4_14(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)     \
    MYHLP_RCUR4_14(macro, arg1, arg2, arg3, arg4, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)

#define MYHLP_RCUR4_29(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)                \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                         \
    MYHLP_RCUR4_14(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)    \
    MYHLP_RCUR4_14(macro, arg1, arg2, arg3, arg4, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)

#define MYHLP_RCUR4_30(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14,      \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)              \
    MYHLP_RCUR4_15(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)   \
    MYHLP_RCUR4_15(macro, arg1, arg2, arg3, arg4, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, \
                   ptr30)

#define MYHLP_RCUR4_31(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14,      \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)       \
    MYHLP_RCUR4_1(macro, arg1, arg2, arg3, arg4, ptr1)                                                                                              \
    MYHLP_RCUR4_15(macro, arg1, arg2, arg3, arg4, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)  \
    MYHLP_RCUR4_15(macro, arg1, arg2, arg3, arg4, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, \
                   ptr31)

#define MYHLP_RCUR4_32(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14,       \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32) \
    MYHLP_RCUR4_16(macro, arg1, arg2, arg3, arg4, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15,    \
                   ptr16)                                                                                                                            \
    MYHLP_RCUR4_16(macro, arg1, arg2, arg3, arg4, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30,  \
                   ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR4_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR4_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR4_GET_FN(__VA_ARGS__, MYHLP_RCUR4_32, MYHLP_RCUR4_31, MYHLP_RCUR4_30, MYHLP_RCUR4_29, MYHLP_RCUR4_28, MYHLP_RCUR4_27, MYHLP_RCUR4_26, \
                       MYHLP_RCUR4_25, MYHLP_RCUR4_24, MYHLP_RCUR4_23, MYHLP_RCUR4_22, MYHLP_RCUR4_21, MYHLP_RCUR4_20, MYHLP_RCUR4_19,              \
                       MYHLP_RCUR4_18, MYHLP_RCUR4_17, MYHLP_RCUR4_16, MYHLP_RCUR4_15, MYHLP_RCUR4_14, MYHLP_RCUR4_13, MYHLP_RCUR4_12,              \
                       MYHLP_RCUR4_11, MYHLP_RCUR4_10, MYHLP_RCUR4_9, MYHLP_RCUR4_8, MYHLP_RCUR4_7, MYHLP_RCUR4_6, MYHLP_RCUR4_5, MYHLP_RCUR4_4,    \
                       MYHLP_RCUR4_3, MYHLP_RCUR4_2, MYHLP_RCUR4_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 5个额外参数 type, len; ptr 可以为 1~N
#define MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr) macro(arg1, arg2, arg3, arg4, arg5, ptr)

#define MYHLP_RCUR5_2(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2) \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)           \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr2)

#define MYHLP_RCUR5_3(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3) \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                 \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr2)                 \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr3)

#define MYHLP_RCUR5_4(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR5_2(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2)                 \
    MYHLP_RCUR5_2(macro, arg1, arg2, arg3, arg4, arg5, ptr3, ptr4)

#define MYHLP_RCUR5_5(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                             \
    MYHLP_RCUR5_2(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3)                       \
    MYHLP_RCUR5_2(macro, arg1, arg2, arg3, arg4, arg5, ptr4, ptr5)

#define MYHLP_RCUR5_6(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR5_3(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR5_3(macro, arg1, arg2, arg3, arg4, arg5, ptr4, ptr5, ptr6)

#define MYHLP_RCUR5_7(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                         \
    MYHLP_RCUR5_3(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR5_3(macro, arg1, arg2, arg3, arg4, arg5, ptr5, ptr6, ptr7)

#define MYHLP_RCUR5_8(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR5_4(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR5_4(macro, arg1, arg2, arg3, arg4, arg5, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR5_9(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                     \
    MYHLP_RCUR5_4(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR5_4(macro, arg1, arg2, arg3, arg4, arg5, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR5_10(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR5_5(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR5_5(macro, arg1, arg2, arg3, arg4, arg5, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR5_11(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                    \
    MYHLP_RCUR5_5(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR5_5(macro, arg1, arg2, arg3, arg4, arg5, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR5_12(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR5_6(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                             \
    MYHLP_RCUR5_6(macro, arg1, arg2, arg3, arg4, arg5, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR5_13(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13) \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                  \
    MYHLP_RCUR5_6(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                    \
    MYHLP_RCUR5_6(macro, arg1, arg2, arg3, arg4, arg5, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR5_14(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14) \
    MYHLP_RCUR5_7(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                     \
    MYHLP_RCUR5_7(macro, arg1, arg2, arg3, arg4, arg5, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR5_15(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15)                                                                                                                        \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_7(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                                     \
    MYHLP_RCUR5_7(macro, arg1, arg2, arg3, arg4, arg5, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR5_16(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16)                                                                                                                 \
    MYHLP_RCUR5_8(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                               \
    MYHLP_RCUR5_8(macro, arg1, arg2, arg3, arg4, arg5, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR5_17(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17)                                                                                                          \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_8(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                               \
    MYHLP_RCUR5_8(macro, arg1, arg2, arg3, arg4, arg5, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR5_18(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18)                                                                                                   \
    MYHLP_RCUR5_9(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                         \
    MYHLP_RCUR5_9(macro, arg1, arg2, arg3, arg4, arg5, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR5_19(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19)                                                                                            \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_9(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                        \
    MYHLP_RCUR5_9(macro, arg1, arg2, arg3, arg4, arg5, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR5_20(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)                                                                                     \
    MYHLP_RCUR5_10(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                 \
    MYHLP_RCUR5_10(macro, arg1, arg2, arg3, arg4, arg5, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR5_21(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)                                                                              \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_10(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                                \
    MYHLP_RCUR5_10(macro, arg1, arg2, arg3, arg4, arg5, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR5_22(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)                                                                       \
    MYHLP_RCUR5_11(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                          \
    MYHLP_RCUR5_11(macro, arg1, arg2, arg3, arg4, arg5, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR5_23(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                                                \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_11(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                         \
    MYHLP_RCUR5_11(macro, arg1, arg2, arg3, arg4, arg5, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR5_24(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                                         \
    MYHLP_RCUR5_12(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                   \
    MYHLP_RCUR5_12(macro, arg1, arg2, arg3, arg4, arg5, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)

#define MYHLP_RCUR5_25(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                                                  \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_12(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)                  \
    MYHLP_RCUR5_12(macro, arg1, arg2, arg3, arg4, arg5, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)

#define MYHLP_RCUR5_26(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                                           \
    MYHLP_RCUR5_13(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)            \
    MYHLP_RCUR5_13(macro, arg1, arg2, arg3, arg4, arg5, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)

#define MYHLP_RCUR5_27(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)                                    \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_13(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)           \
    MYHLP_RCUR5_13(macro, arg1, arg2, arg3, arg4, arg5, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)

#define MYHLP_RCUR5_28(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)                             \
    MYHLP_RCUR5_14(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)     \
    MYHLP_RCUR5_14(macro, arg1, arg2, arg3, arg4, arg5, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27,   \
                   ptr28)

#define MYHLP_RCUR5_29(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)                      \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_14(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)    \
    MYHLP_RCUR5_14(macro, arg1, arg2, arg3, arg4, arg5, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28,   \
                   ptr29)

#define MYHLP_RCUR5_30(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)               \
    MYHLP_RCUR5_15(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14,     \
                   ptr15)                                                                                                                            \
    MYHLP_RCUR5_15(macro, arg1, arg2, arg3, arg4, arg5, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28,   \
                   ptr29, ptr30)

#define MYHLP_RCUR5_31(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)        \
    MYHLP_RCUR5_1(macro, arg1, arg2, arg3, arg4, arg5, ptr1)                                                                                         \
    MYHLP_RCUR5_15(macro, arg1, arg2, arg3, arg4, arg5, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15,    \
                   ptr16)                                                                                                                            \
    MYHLP_RCUR5_15(macro, arg1, arg2, arg3, arg4, arg5, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29,   \
                   ptr30, ptr31)

#define MYHLP_RCUR5_32(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, \
                       ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32) \
    MYHLP_RCUR5_16(macro, arg1, arg2, arg3, arg4, arg5, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14,     \
                   ptr15, ptr16)                                                                                                                     \
    MYHLP_RCUR5_16(macro, arg1, arg2, arg3, arg4, arg5, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29,   \
                   ptr30, ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR5_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR5_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR5_GET_FN(__VA_ARGS__, MYHLP_RCUR5_32, MYHLP_RCUR5_31, MYHLP_RCUR5_30, MYHLP_RCUR5_29, MYHLP_RCUR5_28, MYHLP_RCUR5_27, MYHLP_RCUR5_26, \
                       MYHLP_RCUR5_25, MYHLP_RCUR5_24, MYHLP_RCUR5_23, MYHLP_RCUR5_22, MYHLP_RCUR5_21, MYHLP_RCUR5_20, MYHLP_RCUR5_19,              \
                       MYHLP_RCUR5_18, MYHLP_RCUR5_17, MYHLP_RCUR5_16, MYHLP_RCUR5_15, MYHLP_RCUR5_14, MYHLP_RCUR5_13, MYHLP_RCUR5_12,              \
                       MYHLP_RCUR5_11, MYHLP_RCUR5_10, MYHLP_RCUR5_9, MYHLP_RCUR5_8, MYHLP_RCUR5_7, MYHLP_RCUR5_6, MYHLP_RCUR5_5, MYHLP_RCUR5_4,    \
                       MYHLP_RCUR5_3, MYHLP_RCUR5_2, MYHLP_RCUR5_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 6个额外参数; ptr 可以为 1~N
#define MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr) macro(ptr)

#define MYHLP_RCUR6_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2) \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)           \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2)

#define MYHLP_RCUR6_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3) \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                 \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2)                 \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr3)

#define MYHLP_RCUR6_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR6_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2)                 \
    MYHLP_RCUR6_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr3, ptr4)

#define MYHLP_RCUR6_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                             \
    MYHLP_RCUR6_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3)                       \
    MYHLP_RCUR6_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr4, ptr5)

#define MYHLP_RCUR6_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR6_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR6_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr4, ptr5, ptr6)

#define MYHLP_RCUR6_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                         \
    MYHLP_RCUR6_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR6_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr5, ptr6, ptr7)

#define MYHLP_RCUR6_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR6_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR6_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR6_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                     \
    MYHLP_RCUR6_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR6_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR6_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR6_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR6_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR6_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                    \
    MYHLP_RCUR6_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR6_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR6_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR6_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                             \
    MYHLP_RCUR6_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR6_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13) \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                                    \
    MYHLP_RCUR6_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR6_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14)                                                                                                                       \
    MYHLP_RCUR6_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                              \
    MYHLP_RCUR6_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR6_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15)                                                                                                                \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                              \
    MYHLP_RCUR6_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR6_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16)                                                                                                         \
    MYHLP_RCUR6_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                        \
    MYHLP_RCUR6_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR6_17(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17)                                                                                                  \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                        \
    MYHLP_RCUR6_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR6_18(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18)                                                                                           \
    MYHLP_RCUR6_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                  \
    MYHLP_RCUR6_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR6_19(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)                                                                                    \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                                 \
    MYHLP_RCUR6_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR6_20(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)                                                                             \
    MYHLP_RCUR6_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                          \
    MYHLP_RCUR6_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR6_21(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)                                                                      \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                         \
    MYHLP_RCUR6_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR6_22(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)                                                               \
    MYHLP_RCUR6_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                   \
    MYHLP_RCUR6_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR6_23(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                                        \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)                  \
    MYHLP_RCUR6_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR6_24(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                                 \
    MYHLP_RCUR6_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)            \
    MYHLP_RCUR6_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)

#define MYHLP_RCUR6_25(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                                          \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)           \
    MYHLP_RCUR6_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)

#define MYHLP_RCUR6_26(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                                   \
    MYHLP_RCUR6_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)     \
    MYHLP_RCUR6_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25,   \
                   ptr26)

#define MYHLP_RCUR6_27(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)                            \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)    \
    MYHLP_RCUR6_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26,   \
                   ptr27)

#define MYHLP_RCUR6_28(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)                     \
    MYHLP_RCUR6_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13,     \
                   ptr14)                                                                                                                           \
    MYHLP_RCUR6_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26,   \
                   ptr27, ptr28)

#define MYHLP_RCUR6_29(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)              \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                  \
    MYHLP_RCUR6_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14,    \
                   ptr15)                                                                                                                           \
    MYHLP_RCUR6_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27,   \
                   ptr28, ptr29)

#define MYHLP_RCUR6_30(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)       \
    MYHLP_RCUR6_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13,     \
                   ptr14, ptr15)                                                                                                                    \
    MYHLP_RCUR6_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27,   \
                   ptr28, ptr29, ptr30)

#define MYHLP_RCUR6_31(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13,  \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31) \
    MYHLP_RCUR6_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1)                                                                                   \
    MYHLP_RCUR6_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14,     \
                   ptr15, ptr16)                                                                                                                     \
    MYHLP_RCUR6_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28,    \
                   ptr29, ptr30, ptr31)

#define MYHLP_RCUR6_32(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13,  \
                       ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, \
                       ptr32)                                                                                                                        \
    MYHLP_RCUR6_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13,      \
                   ptr14, ptr15, ptr16)                                                                                                              \
    MYHLP_RCUR6_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28,    \
                   ptr29, ptr30, ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR6_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR6_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR6_GET_FN(__VA_ARGS__, MYHLP_RCUR6_32, MYHLP_RCUR6_31, MYHLP_RCUR6_30, MYHLP_RCUR6_29, MYHLP_RCUR6_28, MYHLP_RCUR6_27, MYHLP_RCUR6_26, \
                       MYHLP_RCUR6_25, MYHLP_RCUR6_24, MYHLP_RCUR6_23, MYHLP_RCUR6_22, MYHLP_RCUR6_21, MYHLP_RCUR6_20, MYHLP_RCUR6_19,              \
                       MYHLP_RCUR6_18, MYHLP_RCUR6_17, MYHLP_RCUR6_16, MYHLP_RCUR6_15, MYHLP_RCUR6_14, MYHLP_RCUR6_13, MYHLP_RCUR6_12,              \
                       MYHLP_RCUR6_11, MYHLP_RCUR6_10, MYHLP_RCUR6_9, MYHLP_RCUR6_8, MYHLP_RCUR6_7, MYHLP_RCUR6_6, MYHLP_RCUR6_5, MYHLP_RCUR6_4,    \
                       MYHLP_RCUR6_3, MYHLP_RCUR6_2, MYHLP_RCUR6_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 7个额外参数; ptr 可以为 1~N
#define MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr) macro(ptr)

#define MYHLP_RCUR7_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2) \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)           \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2)

#define MYHLP_RCUR7_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3) \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                 \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2)                 \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr3)

#define MYHLP_RCUR7_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR7_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2)                 \
    MYHLP_RCUR7_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr3, ptr4)

#define MYHLP_RCUR7_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                             \
    MYHLP_RCUR7_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3)                       \
    MYHLP_RCUR7_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr4, ptr5)

#define MYHLP_RCUR7_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR7_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR7_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr4, ptr5, ptr6)

#define MYHLP_RCUR7_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                         \
    MYHLP_RCUR7_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR7_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr5, ptr6, ptr7)

#define MYHLP_RCUR7_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR7_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR7_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR7_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                     \
    MYHLP_RCUR7_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR7_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR7_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR7_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR7_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR7_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                    \
    MYHLP_RCUR7_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR7_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR7_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR7_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                             \
    MYHLP_RCUR7_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR7_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13)                                                                                                                      \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                             \
    MYHLP_RCUR7_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR7_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14)                                                                                                               \
    MYHLP_RCUR7_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                       \
    MYHLP_RCUR7_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR7_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15)                                                                                                        \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                       \
    MYHLP_RCUR7_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR7_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16)                                                                                                 \
    MYHLP_RCUR7_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                 \
    MYHLP_RCUR7_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR7_17(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17)                                                                                          \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                                 \
    MYHLP_RCUR7_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR7_18(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)                                                                                   \
    MYHLP_RCUR7_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                           \
    MYHLP_RCUR7_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR7_19(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)                                                                            \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                          \
    MYHLP_RCUR7_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR7_20(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)                                                                     \
    MYHLP_RCUR7_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                   \
    MYHLP_RCUR7_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR7_21(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)                                                              \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)                  \
    MYHLP_RCUR7_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR7_22(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)                                                       \
    MYHLP_RCUR7_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)            \
    MYHLP_RCUR7_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR7_23(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                                \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)           \
    MYHLP_RCUR7_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR7_24(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                         \
    MYHLP_RCUR7_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)     \
    MYHLP_RCUR7_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23,   \
                   ptr24)

#define MYHLP_RCUR7_25(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                                  \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)    \
    MYHLP_RCUR7_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24,   \
                   ptr25)

#define MYHLP_RCUR7_26(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                           \
    MYHLP_RCUR7_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,     \
                   ptr13)                                                                                                                          \
    MYHLP_RCUR7_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24,   \
                   ptr25, ptr26)

#define MYHLP_RCUR7_27(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)                    \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13,    \
                   ptr14)                                                                                                                          \
    MYHLP_RCUR7_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25,   \
                   ptr26, ptr27)

#define MYHLP_RCUR7_28(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)             \
    MYHLP_RCUR7_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,     \
                   ptr13, ptr14)                                                                                                                   \
    MYHLP_RCUR7_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25,   \
                   ptr26, ptr27, ptr28)

#define MYHLP_RCUR7_29(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29)      \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                           \
    MYHLP_RCUR7_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13,    \
                   ptr14, ptr15)                                                                                                                   \
    MYHLP_RCUR7_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26,   \
                   ptr27, ptr28, ptr29)

#define MYHLP_RCUR7_30(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,   \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30) \
    MYHLP_RCUR7_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,       \
                   ptr13, ptr14, ptr15)                                                                                                              \
    MYHLP_RCUR7_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26,     \
                   ptr27, ptr28, ptr29, ptr30)

#define MYHLP_RCUR7_31(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,   \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, \
                       ptr31)                                                                                                                        \
    MYHLP_RCUR7_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1)                                                                             \
    MYHLP_RCUR7_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13,      \
                   ptr14, ptr15, ptr16)                                                                                                              \
    MYHLP_RCUR7_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27,     \
                   ptr28, ptr29, ptr30, ptr31)

#define MYHLP_RCUR7_32(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,   \
                       ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, ptr30, \
                       ptr31, ptr32)                                                                                                                 \
    MYHLP_RCUR7_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,       \
                   ptr13, ptr14, ptr15, ptr16)                                                                                                       \
    MYHLP_RCUR7_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27,     \
                   ptr28, ptr29, ptr30, ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR7_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR7_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR7_GET_FN(__VA_ARGS__, MYHLP_RCUR7_32, MYHLP_RCUR7_31, MYHLP_RCUR7_30, MYHLP_RCUR7_29, MYHLP_RCUR7_28, MYHLP_RCUR7_27, MYHLP_RCUR7_26, \
                       MYHLP_RCUR7_25, MYHLP_RCUR7_24, MYHLP_RCUR7_23, MYHLP_RCUR7_22, MYHLP_RCUR7_21, MYHLP_RCUR7_20, MYHLP_RCUR7_19,              \
                       MYHLP_RCUR7_18, MYHLP_RCUR7_17, MYHLP_RCUR7_16, MYHLP_RCUR7_15, MYHLP_RCUR7_14, MYHLP_RCUR7_13, MYHLP_RCUR7_12,              \
                       MYHLP_RCUR7_11, MYHLP_RCUR7_10, MYHLP_RCUR7_9, MYHLP_RCUR7_8, MYHLP_RCUR7_7, MYHLP_RCUR7_6, MYHLP_RCUR7_5, MYHLP_RCUR7_4,    \
                       MYHLP_RCUR7_3, MYHLP_RCUR7_2, MYHLP_RCUR7_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 8个额外参数; ptr 可以为 1~N
#define MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr) macro(ptr)

#define MYHLP_RCUR8_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2) \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)           \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2)

#define MYHLP_RCUR8_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3) \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                 \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2)                 \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr3)

#define MYHLP_RCUR8_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR8_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2)                 \
    MYHLP_RCUR8_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr3, ptr4)

#define MYHLP_RCUR8_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                             \
    MYHLP_RCUR8_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3)                       \
    MYHLP_RCUR8_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr4, ptr5)

#define MYHLP_RCUR8_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR8_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR8_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr4, ptr5, ptr6)

#define MYHLP_RCUR8_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                         \
    MYHLP_RCUR8_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR8_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr5, ptr6, ptr7)

#define MYHLP_RCUR8_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR8_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR8_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR8_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                     \
    MYHLP_RCUR8_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR8_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR8_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR8_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR8_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR8_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6)                                            \
    MYHLP_RCUR8_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR8_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12)                                                                                                                     \
    MYHLP_RCUR8_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                                      \
    MYHLP_RCUR8_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR8_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13)                                                                                                              \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                      \
    MYHLP_RCUR8_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR8_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14)                                                                                                       \
    MYHLP_RCUR8_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                                \
    MYHLP_RCUR8_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR8_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15)                                                                                                \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                                \
    MYHLP_RCUR8_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR8_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16)                                                                                         \
    MYHLP_RCUR8_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                          \
    MYHLP_RCUR8_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR8_17(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)                                                                                  \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                          \
    MYHLP_RCUR8_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR8_18(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)                                                                           \
    MYHLP_RCUR8_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                    \
    MYHLP_RCUR8_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR8_19(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)                                                                    \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)                   \
    MYHLP_RCUR8_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR8_20(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)                                                             \
    MYHLP_RCUR8_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)            \
    MYHLP_RCUR8_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR8_21(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)                                                      \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)           \
    MYHLP_RCUR8_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR8_22(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)                                               \
    MYHLP_RCUR8_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)     \
    MYHLP_RCUR8_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)

#define MYHLP_RCUR8_23(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                        \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)    \
    MYHLP_RCUR8_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)

#define MYHLP_RCUR8_24(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,    \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                                    \
    MYHLP_RCUR8_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR8_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22,      \
                   ptr23, ptr24)

#define MYHLP_RCUR8_25(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                          \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,    \
                   ptr13)                                                                                                                         \
    MYHLP_RCUR8_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23,   \
                   ptr24, ptr25)

#define MYHLP_RCUR8_26(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,    \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)                      \
    MYHLP_RCUR8_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                   ptr13)                                                                                                                            \
    MYHLP_RCUR8_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23,      \
                   ptr24, ptr25, ptr26)

#define MYHLP_RCUR8_27(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)            \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                    \
    MYHLP_RCUR8_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,    \
                   ptr13, ptr14)                                                                                                                  \
    MYHLP_RCUR8_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24,   \
                   ptr25, ptr26, ptr27)

#define MYHLP_RCUR8_28(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,    \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28)        \
    MYHLP_RCUR8_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                   ptr13, ptr14)                                                                                                                     \
    MYHLP_RCUR8_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24,      \
                   ptr25, ptr26, ptr27, ptr28)

#define MYHLP_RCUR8_29(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,    \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29) \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                       \
    MYHLP_RCUR8_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,       \
                   ptr13, ptr14, ptr15)                                                                                                              \
    MYHLP_RCUR8_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25,      \
                   ptr26, ptr27, ptr28, ptr29)

#define MYHLP_RCUR8_30(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,    \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, \
                       ptr30)                                                                                                                        \
    MYHLP_RCUR8_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                   ptr13, ptr14, ptr15)                                                                                                              \
    MYHLP_RCUR8_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25,      \
                   ptr26, ptr27, ptr28, ptr29, ptr30)

#define MYHLP_RCUR8_31(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,    \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, \
                       ptr30, ptr31)                                                                                                                 \
    MYHLP_RCUR8_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1)                                                                       \
    MYHLP_RCUR8_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12,       \
                   ptr13, ptr14, ptr15, ptr16)                                                                                                       \
    MYHLP_RCUR8_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26,      \
                   ptr27, ptr28, ptr29, ptr30, ptr31)

#define MYHLP_RCUR8_32(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,    \
                       ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, ptr29, \
                       ptr30, ptr31, ptr32)                                                                                                          \
    MYHLP_RCUR8_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                   ptr13, ptr14, ptr15, ptr16)                                                                                                       \
    MYHLP_RCUR8_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26,      \
                   ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR8_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR8_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR8_GET_FN(__VA_ARGS__, MYHLP_RCUR8_32, MYHLP_RCUR8_31, MYHLP_RCUR8_30, MYHLP_RCUR8_29, MYHLP_RCUR8_28, MYHLP_RCUR8_27, MYHLP_RCUR8_26, \
                       MYHLP_RCUR8_25, MYHLP_RCUR8_24, MYHLP_RCUR8_23, MYHLP_RCUR8_22, MYHLP_RCUR8_21, MYHLP_RCUR8_20, MYHLP_RCUR8_19,              \
                       MYHLP_RCUR8_18, MYHLP_RCUR8_17, MYHLP_RCUR8_16, MYHLP_RCUR8_15, MYHLP_RCUR8_14, MYHLP_RCUR8_13, MYHLP_RCUR8_12,              \
                       MYHLP_RCUR8_11, MYHLP_RCUR8_10, MYHLP_RCUR8_9, MYHLP_RCUR8_8, MYHLP_RCUR8_7, MYHLP_RCUR8_6, MYHLP_RCUR8_5, MYHLP_RCUR8_4,    \
                       MYHLP_RCUR8_3, MYHLP_RCUR8_2, MYHLP_RCUR8_1)

///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 类似FFT, 递归宏; 9个额外参数; ptr 可以为 1~N
#define MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr) macro(ptr)

#define MYHLP_RCUR9_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2) \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)           \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2)

#define MYHLP_RCUR9_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3) \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                 \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2)                 \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr3)

#define MYHLP_RCUR9_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4) \
    MYHLP_RCUR9_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2)                 \
    MYHLP_RCUR9_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr3, ptr4)

#define MYHLP_RCUR9_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5) \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                             \
    MYHLP_RCUR9_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3)                       \
    MYHLP_RCUR9_2(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr4, ptr5)

#define MYHLP_RCUR9_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6) \
    MYHLP_RCUR9_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3)                       \
    MYHLP_RCUR9_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr4, ptr5, ptr6)

#define MYHLP_RCUR9_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7) \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                         \
    MYHLP_RCUR9_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR9_3(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr5, ptr6, ptr7)

#define MYHLP_RCUR9_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8) \
    MYHLP_RCUR9_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4)                             \
    MYHLP_RCUR9_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr5, ptr6, ptr7, ptr8)

#define MYHLP_RCUR9_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9) \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                     \
    MYHLP_RCUR9_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5)                                   \
    MYHLP_RCUR9_4(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr6, ptr7, ptr8, ptr9)

#define MYHLP_RCUR9_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10) \
    MYHLP_RCUR9_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5)                                     \
    MYHLP_RCUR9_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr6, ptr7, ptr8, ptr9, ptr10)

#define MYHLP_RCUR9_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11)                                                                                                                    \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                             \
    MYHLP_RCUR9_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6)                                     \
    MYHLP_RCUR9_5(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr7, ptr8, ptr9, ptr10, ptr11)

#define MYHLP_RCUR9_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12)                                                                                                             \
    MYHLP_RCUR9_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6)                               \
    MYHLP_RCUR9_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12)

#define MYHLP_RCUR9_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13)                                                                                                      \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                             \
    MYHLP_RCUR9_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                               \
    MYHLP_RCUR9_6(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13)

#define MYHLP_RCUR9_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13, ptr14)                                                                                               \
    MYHLP_RCUR9_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7)                         \
    MYHLP_RCUR9_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14)

#define MYHLP_RCUR9_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13, ptr14, ptr15)                                                                                        \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                             \
    MYHLP_RCUR9_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                         \
    MYHLP_RCUR9_7(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15)

#define MYHLP_RCUR9_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)                                                                                 \
    MYHLP_RCUR9_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8)                   \
    MYHLP_RCUR9_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16)

#define MYHLP_RCUR9_17(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)                                                                          \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                             \
    MYHLP_RCUR9_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)                   \
    MYHLP_RCUR9_8(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17)

#define MYHLP_RCUR9_18(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)                                                                   \
    MYHLP_RCUR9_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9)             \
    MYHLP_RCUR9_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18)

#define MYHLP_RCUR9_19(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)                                                            \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                             \
    MYHLP_RCUR9_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)            \
    MYHLP_RCUR9_9(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19)

#define MYHLP_RCUR9_20(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)                                                     \
    MYHLP_RCUR9_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10)     \
    MYHLP_RCUR9_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20)

#define MYHLP_RCUR9_21(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)                                              \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                             \
    MYHLP_RCUR9_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11)    \
    MYHLP_RCUR9_10(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21)

#define MYHLP_RCUR9_22(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,    \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22)                                          \
    MYHLP_RCUR9_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11) \
    MYHLP_RCUR9_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20,      \
                   ptr21, ptr22)

#define MYHLP_RCUR9_23(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,     \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23)                                    \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                                 \
    MYHLP_RCUR9_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12) \
    MYHLP_RCUR9_11(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21,       \
                   ptr22, ptr23)

#define MYHLP_RCUR9_24(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,    \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24)                            \
    MYHLP_RCUR9_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                   ptr12)                                                                                                                           \
    MYHLP_RCUR9_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21,      \
                   ptr22, ptr23, ptr24)

#define MYHLP_RCUR9_25(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,     \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25)                      \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                                 \
    MYHLP_RCUR9_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                   ptr13)                                                                                                                            \
    MYHLP_RCUR9_12(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22,       \
                   ptr23, ptr24, ptr25)

#define MYHLP_RCUR9_26(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,    \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26)              \
    MYHLP_RCUR9_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, \
                   ptr12, ptr13)                                                                                                                    \
    MYHLP_RCUR9_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22,      \
                   ptr23, ptr24, ptr25, ptr26)

#define MYHLP_RCUR9_27(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,     \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27)        \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                                 \
    MYHLP_RCUR9_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                   ptr13, ptr14)                                                                                                                     \
    MYHLP_RCUR9_13(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23,       \
                   ptr24, ptr25, ptr26, ptr27)

#define MYHLP_RCUR9_28(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,     \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28) \
    MYHLP_RCUR9_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,  \
                   ptr12, ptr13, ptr14)                                                                                                              \
    MYHLP_RCUR9_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23,       \
                   ptr24, ptr25, ptr26, ptr27, ptr28)

#define MYHLP_RCUR9_29(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,     \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, \
                       ptr29)                                                                                                                        \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                                 \
    MYHLP_RCUR9_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                   ptr13, ptr14, ptr15)                                                                                                              \
    MYHLP_RCUR9_14(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24,       \
                   ptr25, ptr26, ptr27, ptr28, ptr29)

#define MYHLP_RCUR9_30(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,     \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, \
                       ptr29, ptr30)                                                                                                                 \
    MYHLP_RCUR9_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,  \
                   ptr12, ptr13, ptr14, ptr15)                                                                                                       \
    MYHLP_RCUR9_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24,       \
                   ptr25, ptr26, ptr27, ptr28, ptr29, ptr30)

#define MYHLP_RCUR9_31(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,     \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, \
                       ptr29, ptr30, ptr31)                                                                                                          \
    MYHLP_RCUR9_1(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1)                                                                 \
    MYHLP_RCUR9_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, \
                   ptr13, ptr14, ptr15, ptr16)                                                                                                       \
    MYHLP_RCUR9_15(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25,       \
                   ptr26, ptr27, ptr28, ptr29, ptr30, ptr31)

#define MYHLP_RCUR9_32(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10,     \
                       ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26, ptr27, ptr28, \
                       ptr29, ptr30, ptr31, ptr32)                                                                                                   \
    MYHLP_RCUR9_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11,  \
                   ptr12, ptr13, ptr14, ptr15, ptr16)                                                                                                \
    MYHLP_RCUR9_16(macro, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25,       \
                   ptr26, ptr27, ptr28, ptr29, ptr30, ptr31, ptr32)

// 可变参数宏
#define MYHLP_RCUR9_GET_FN(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, \
                           _27, _28, _29, _30, _31, _32, NAME, ...)                                                                                 \
    NAME
#define MYHLP_RCUR9_SELECT_FN(...)                                                                                                                  \
    MYHLP_RCUR9_GET_FN(__VA_ARGS__, MYHLP_RCUR9_32, MYHLP_RCUR9_31, MYHLP_RCUR9_30, MYHLP_RCUR9_29, MYHLP_RCUR9_28, MYHLP_RCUR9_27, MYHLP_RCUR9_26, \
                       MYHLP_RCUR9_25, MYHLP_RCUR9_24, MYHLP_RCUR9_23, MYHLP_RCUR9_22, MYHLP_RCUR9_21, MYHLP_RCUR9_20, MYHLP_RCUR9_19,              \
                       MYHLP_RCUR9_18, MYHLP_RCUR9_17, MYHLP_RCUR9_16, MYHLP_RCUR9_15, MYHLP_RCUR9_14, MYHLP_RCUR9_13, MYHLP_RCUR9_12,              \
                       MYHLP_RCUR9_11, MYHLP_RCUR9_10, MYHLP_RCUR9_9, MYHLP_RCUR9_8, MYHLP_RCUR9_7, MYHLP_RCUR9_6, MYHLP_RCUR9_5, MYHLP_RCUR9_4,    \
                       MYHLP_RCUR9_3, MYHLP_RCUR9_2, MYHLP_RCUR9_1)
